Aspects of the present invention relate to shared memory. Other aspects of the present invention relate to share memory information management.
In a computing environment, a memory is used to store data. Such stored data may be accessed. Through data access, different processes can share information. For example, a process may store a piece of information at a particular memory location. When another process accesses the information from the memory location, the two processes effectively share the same piece of information. Information sharing through shared memory may occur at different levels of applications. For instance, different processes in an application may exchange information through shared memory. Threads within a process may also share information through memory.
Information sharing through shared memory may also manifest in different forms. More sophisticated memory sharing schemes have been developed. For example, memory may be shared in the form of an object whose implementation (e.g., the memory location it resides) may be hidden from its users. In this way, processes that share memory objects can handle objects at a more conceptual or transparent level. To facilitate that, some of the burden has been shifted to memory management systems that manage housekeeping information about the stored information. For example, a memory management system may keep track of information such as which object resides where and occupies how much space.
While static memory management information may be useful for certain purposes, it does not offer a useful depiction in terms of dynamic uses of the memory objects. Dynamic information about the use of memory objects includes, for example, who is using what object at what time and who is sharing what data with whom. Making such information readily accessible may help many applications to solve problems in a more effective manner.